最近のデータカタログの各種機能の有無を確認してみた(2024年4月時点)
さがらです。
ここ1~2年は新しい製品のリリースが落ち着いてきた印象ですが、Modern Data Stack界隈ではたくさんのデータカタログ製品が存在しています。
私も2年くらい前に色々触って調査したものの、この2年間での各製品のアップデートが凄まじく「どの製品がどの機能を持っているんだっけ…?」と知識が怪しくなってきてしまっている状況です。
そこで、今回改めて各製品の公式ドキュメントをベースに、最近のデータカタログの各種機能の有無を確認してみたので、本記事でまとめてみます。
※注意事項:各製品のアップデートのスピードは本当に早いため、半年も経てば現時点で出来ていなかったことが出来ているようになっている可能性が高いです。最新の情報はご自身で確認の上、本記事は参考程度にご利用ください。
比較対象のデータカタログ
比較対象としては、以下のデータカタログを比較します。
これらのデータカタログに対して、以下の機能について見ていきます。また、基本的には標準機能として備わっている機能をベースに確認します。(API使えば出来そう、というレベルまでは確認していません。)
- データリネージ
- メタデータ管理効率化
- メタデータの履歴管理
- 各アセットの活用状況の可視化
- インポート・エクスポート
- カタログからDWHへのメタデータ連携
- カタログからdbtへのメタデータ連携
- dbt開発時の影響するアセットの確認
- スキーマ変更の検知
- チャットアプリ連携(Slack、Teams)
- テスト関係
- AI関係
データリネージ
最近のデータカタログは、ソーステーブルから末端のBIツールのダッシュボードまでのリネージを提供していることが多いです。一部のデータカタログは列レベルリネージも提供しています。
- Atlan:データリネージあり、列レベルリネージあり
- Secoda:データリネージあり、列レベルリネージあり
- CastorDoc:データリネージあり、列レベルリネージはあるが指定したカラムに限定したリネージとなる
- Select Star:データリネージあり、列レベルリネージあり
- OpenMetadata:データリネージあり、列レベルリネージあり
- DataHub:データリネージあり、列レベルリネージあり
メタデータ管理効率化
どのデータカタログもGUI上でビジネスメタデータをタグやDescriptionとして登録する機能はもちろんありますが、類似するカラムのDescriptionを一括登録したり、事前定義した条件に合致する場合は自動でタグ付けを行ったり、という機能を持っているデータカタログもあります。
- Atlan:「playbooks」という機能でルールベースの自動化が可能。類似アセットからの提案機能や、タグの伝播機能もあり
- https://ask.atlan.com/hc/en-us/articles/8216975493917-How-to-set-up-playbooks
- https://ask.atlan.com/hc/en-us/articles/6756738674831-How-to-automate-data-profiling
- https://ask.atlan.com/hc/en-us/articles/7781078875921-Suggestions-from-similar-assets
- https://ask.atlan.com/hc/en-us/articles/7781076790289-Tag-propagation#to-downstream-assets-0-0
- Secoda:「Automations」という機能でルールベースの自動化が可能。画面上で複数のリソースを一括更新することも可能
- CastorDoc:「Metadata Editor」という機能で一括でのタグ付けやDescriptionの記入が可能
- Select Star:ルールベースのPIIタグ付けや、他のアセットと比較したタグの提案が可能
- OpenMetadata:PIIデータについては自動タグ付け機能あり
- DataHub:なし
メタデータの履歴管理
データカタログを運用するうえで、誤ったメタデータに更新してしまったときなど、過去のメタデータを見たい場合があります。各データカタログは様々なアプローチでメタデータの履歴管理を行えるようになっています。
- Atlan:activity logという機能で変更履歴を確認可能
- Secoda:Gitと連携した履歴管理が可能
- CastorDoc:各アセットごとに「History」タブあり
- Select Star:なし
- OpenMetadata:ChangeEventという形で確認可能
- DataHub:Business GlossaryについてはGit連携機能あり。Data ProductsをGitで管理する機能もあり
各アセットの活用状況の可視化
各テーブル・カラムがどれだけ使われているのかを可視化できる機能がデータカタログには備わっています。
- Atlan:クエリ履歴を元に、対象アセットの人気度合いを確認可能
- Secoda:クエリ履歴とSecoda内での閲覧数に基づく、人気度合いを確認可能
- CastorDoc:クエリ履歴を元に、対象アセットの人気度合いを確認可能
- Select Star:クエリ履歴を元に、人気のクエリ、人気のJOIN先テーブル、を確認可能
- OpenMetadata:各アセットから発行されているクエリ一覧を確認することが可能。人気度合いに沿ったソートも可能(筆者がサンドボックス環境で確認)
- DataHub:過去1ヶ月のクエリ発行数や、上位5つの発行されたクエリや利用ユーザーの確認が可能
インポート・エクスポート
データカタログに対してCSVなどのファイル形式でインポートしたり、逆にデータカタログ上で定義された情報をCSVなどのファイル形式でエクスポートする機能を提供しています。
- Atlan:スプレッドシート・Excelとの連携機能あり
- Secoda:CSVでのインポート・エクスポートに対応
- CastorDoc:CSVでのインポート・エクスポートに対応
- Select Star:CSVでのインポートに対応。エクスポートできるのはSelect Star上でのユーザー行動履歴
- OpenMetadata:Glossaryに関してはCSVでのインポート・エクスポート機能あり
- DataHub:CSVでのインポートに対応
カタログからDWHへのメタデータ連携
各DWHと連携してテーブルデータやクエリ履歴を取得する機能はほぼすべてのデータカタログが提供していますが、一部のデータカタログは、タグやdescriptionをカタログからDWHへ連携する機能を持っています。
- Atlan:タグについては、AtlanからSnowflakeへの連携機能あり
- Secoda:Descriptionについて、SecodaからSnowflake・BigQuery・Redshiftへの連携機能あり
- CastorDoc:Descriptionについて、CastorDocからSnowflakeへの連携機能あり
- Select Star:タグについては、Select StarからSnowflakeへの連携機能あり
- OpenMetadata:なし
- DataHub:なし
カタログからdbtへのメタデータ連携
dbtではyaml上でテーブルやカラムに対するdescriptionを定義できますが、その情報をデータカタログに同期できる機能を最近のデータカタログはほぼ全て提供しています。一方で一部のデータカタログは、データカタログ上で定義したdescriptionを、dbtのyamlに書き戻す機能も備わっています。この書き戻し機能を各カタログが持っているかどうかについて、本章で記します。
- Atlan:なし
- Secoda:なし
- CastorDoc:descriptionについて、CastorDocからdbtへの書き戻し機能あり
- Select Star:descriptionについて、Select Starからdbtへの書き戻し機能あり
- OpenMetadata:なし
- DataHub:なし
dbt開発時の影響するアセットの確認
一部のデータカタログは、dbt開発時に影響するアセットを確認できる機能を提供しています。(主にGitHub Actionsを用いて)
- Atlan:GitHub Actionsあり
- Secoda:GitHub Actionsあり
- CastorDoc:GitHub Actionsなし。データリネージを用いてカタログ上で確認する
- Select Star:GitHub Actionsあり
- OpenMetadata:GitHub Actionsなし。列レベルリネージを用いてカタログ上で確認する
- DataHub:GitHub Actionsなし。あるアセットからの影響分析を行える機能はあり
スキーマ変更の検知
データ基盤を運用するうえで、突然ソースデータにおいてカラム追加やデータ型の変更が起きる場合があります。その際に一部のデータカタログはこれらの変更を検知できる機能が備わっています。
- Atlan:スキーマの変更履歴を確認できる機能あり ※通知はなし
- Secoda:スキーマ変更を検知し通知できる機能あり
- CastorDoc:なし
- Select Star:スキーマ変更を検知し通知できる機能あり
- OpenMetadata:スキーマ変更を検知し通知できる機能あり
- DataHub:スキーマの変更履歴を確認できる機能あり ※通知はなし
チャットアプリ連携(Slack、Teams)
SlackやTeamなどのチャットアプリと連携することで、チャットアプリからデータカタログ上のアセットの検索を行ったり、チャットアプリ上のスレッドをデータカタログに紐づけたり、ということが可能です。
- Atlan:SlackとTeamsと連携可能。Slackでは、SlackスレッドをAtlanの関連するアセットに紐づける、SlackからAtlan上のアセットの検索、Glossaryなどの更新の通知、などが可能。Teamsでは、TeamsスレッドをAtlanの関連するアセットに紐づける、Glossaryなどの更新の通知、などが可能。
- Secoda:SlackとTeamsと連携可能。Slackでは、ワークスペースの変更に関する通知、AI Assistantとの対話、SlackのスレッドをSecodaの関連するアセットに紐づける、SlackからSecodaに検索する、などが可能。Teamsでは、ワークスペースの変更に関する通知のみが可能
- CastorDoc:Slackと連携可能。Slack上でCastorDocのリンクを貼ったときにプレビューを表示、SlackのスレッドをCastorの関連するアセットに紐づける、対象ユーザーが所有者のアセットに対するコメントの通知、などが可能
- Select Star:Slackと連携可能。Select Starに対する検索、AIチャットボットを追加した自動回答機能、スキーマ変更の通知、対象ユーザーが所有者のアセットに対するコメントの通知、などが可能
- OpenMetadata:SlackとTeamsと連携可能。OpenMetadataから送信されるアラートの通知が可能と記載あり (設定手順に関するドキュメントはわからず…)
- DataHub:Slackと連携可能。特定のイベント発生時にSlackのチャンネルに通知が可能
テスト関係
一部のデータカタログでは、データカタログ経由でデータ品質をチェックするテストを行う機能が備わっています。(鮮度、最大・最小値の範囲内確認、カラム数確認、カスタムSQL、など)また、dbtやGreat Expectationsなどの外部ツールのテスト結果を連携できる機能は多くの製品が提供しています。
- Atlan:カタログで実行するテスト機能はなし。ただし、dbt test、Monte Carlo、Sodaのテスト結果を連携して表示させることが可能
- Secoda:カタログで実行するテスト機能はなし。ただし、dbt test、Great Expectationsのテスト結果を連携して表示させることが可能
- CastorDoc:カタログで実行するテスト機能はなし。ただし、dbt test、Sodaのテスト結果を連携して表示させることが可能
- Select Star:カタログで実行するテスト機能はなし。ただし、dbt testのテスト結果を連携して表示させることが可能
- OpenMetadata:カタログで実行するテスト機能はあり。この上で、dbt test、Great Expectations、Deequ、Sodaのテスト結果を連携して表示可能
- DataHub:カタログで実行するテスト機能はあり。この上で、dbt test、Great Expectations、のテスト結果を連携して表示可能
AI関係
昨今の生成AIの流行も受け、一部のデータカタログは生成AIを用いた機能を提供しています。
- Atlan:Atlan AIという名称でAI機能を提供している。descriptionの自動記入、テーブル間の変換クエリの説明のリクエスト、SQLクエリの生成が可能
- Secoda:AI Assistant機能があり、自然言語で質問を行える。Slackと連携しSlackから自然言語で質問を行うことも可能
- CastorDoc:自由に自然言語で質問を行える、AI SearchやAI Data Assistantの機能あり
- Select Star:AIベースのdescription自動記入、AI Chatbotへの質問機能があり
- OpenMetadata:なし
- DataHub:なし
最後に
各製品の公式ドキュメントをベースに、最近のデータカタログの各種機能の有無を確認してみました。
実際に調べてみて、「あれ、今こんなことできるの!?」という発見も多くありました。(Teamsとの連携や、カタログからdescriptionをDWHに転送、などが特に驚きました。)
データカタログを検討する際の参考になると嬉しいです!